package com.biz.primus.ms.payment.dao.repository;

import com.biz.primus.model.payment.enums.PaymentType;
import com.biz.primus.ms.base.jpa.repository.CommonJpaRepository;
import com.biz.primus.ms.payment.dao.po.SupportPaymentPo;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import java.util.Collection;
import java.util.List;

/**
 * SupportPaymentRepository
 *
 * @author JKLiues
 * @date 2017年11月16日
 */
public interface SupportPaymentRepository extends CommonJpaRepository<SupportPaymentPo, Long>, SupportPaymentDao {


    /**
     * 根据支付编码查支付方式
     *
     * @param codes 支付编码
     * @return List<SupportPaymentPo> {@link SupportPaymentPo}
     */
    List<SupportPaymentPo> findByCodeIn(Collection<String> codes);

    /**
     * 修改支付方式与本地的对应关系
     *
     * @param id          支付方式id
     * @param paymentType 本地支付方式
     * @return int
     */
    @Modifying
    @Query("update SupportPaymentPo o set o.payType = ?2 where o.id = ?1 ")
    Integer updatePaymentType(Long id, PaymentType paymentType);

    /**
     * 根据支付编码查支付方式
     *
     * @param code 支付编码
     * @return SupportPaymentPo {@link SupportPaymentPo}
     */
    SupportPaymentPo findByCode(String code);
}